GodotのCollision LayerとCollision Maskの使い分け

作成日
更新日

Godot では、物理衝突(当たり判定)の制御に「Collision Layer」と「Collision Mask」という2つの概念が用いられる。
これは、オブジェクト同士が「何と」「どうぶつかるか」を定義するためのシステム。

Collision Layer(レイヤー)

  • 意味:このオブジェクトがどの層に存在しているか
  • イメージ:名札をつけて「自分はこのレイヤーにいるよ!」と宣言する
  • 完全に受け身
  • 例:敵が Enemy レイヤーに属している

Collision Mask(マスク)

  • 意味:このオブジェクトがどのレイヤーのオブジェクトと衝突したいか
  • イメージ:双眼鏡をのぞいて「このレイヤーにいるやつを探すぞ!」という積極的な姿勢
  • 能動的に衝突対象を探す
  • 例:プレイヤーが Enemy をマスクしている → 敵と衝突したい

実用パターン

オブジェクト Layer(どこにいるか) Mask(誰を探すか)
プレイヤー Player Terrain, Enemy
Enemy Player
弾(プレイヤー) Bullet Enemy
地形 Terrain —(何も見ない)

まとめ

  • Layer → 見つけられる側(ラベル)
  • Mask → 探す側(レーダー)

「レイヤー = このノードが所属するグループ」
「マスク = このノードが見ようとしているグループ」

#ChatGPTより引用

サイトアイコン
公開日
更新日